실습: 데이터 가시화#
강좌: 수치해석 프로젝트
Space X 비행 자료 분석#
주식 데이터 구하기#
국내 주식#
미국 주식#
환율#
데이터 가시화#
국내 및 미국 주식회사 각 2곳을 선택하고 1년동안 주가 및 거래량 변화를 가시화하자.
위 4개의 회사의 주가를 1개 통화 (원화 또는 달러)로 비교하라.
%matplotlib inline
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
plt.style.use('ggplot')
plt.rcParams['figure.dpi'] = 150
# Text 데이터 Encoding 정보 필요 (utf8 vs cp949)
sample = pd.read_csv('stock_ecopro.csv', encoding='cp949')
sample.head()
일자 | 종가 | 대비 | 등락률 | 시가 | 고가 | 저가 | 거래량 | 거래대금 | 시가총액 | 상장주식수 | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2023/08/30 | 1233000 | 12000 | 0.98 | 1247000 | 1260000 | 1228000 | 230778 | 287823716000 | 32831914644000 | 26627668 |
1 | 2023/08/29 | 1221000 | -34000 | -2.71 | 1241000 | 1248000 | 1188000 | 543970 | 663813159000 | 32512382628000 | 26627668 |
2 | 2023/08/28 | 1255000 | -2000 | -0.16 | 1275000 | 1275000 | 1242000 | 435203 | 547650033000 | 33417723340000 | 26627668 |
3 | 2023/08/25 | 1257000 | -2000 | -0.16 | 1229000 | 1279000 | 1218000 | 571936 | 716752896000 | 33470978676000 | 26627668 |
4 | 2023/08/24 | 1259000 | 38000 | 3.11 | 1252000 | 1271000 | 1230000 | 695444 | 873730296000 | 33524234012000 | 26627668 |
Tip 1#
일자가 string object로 저장되어 있는데, 이를 axis로 쓰기 위해 date
로 변환하는 방법
datetime 패키지 내
strptime
함수를 이용String
을 지정된 형식으로 분석 후 년월일로 변환국내 주가 형식은 Y/M/D 임
# 일자 형식이 object 임
sample['일자'].dtype
dtype('O')
# 일자 형식이 object 임
sample['일자'][0]
'2023/08/30'
from datetime import datetime
# 날자 변환
datetime.strptime(sample['일자'][0],"%Y/%m/%d").date()
# DIY: 새로운 column을 만들고 모든 일자를 변환해야 함
datetime.date(2023, 8, 30)
Tip 2#
숫자에 콤마가 있어서 pandas
에서 float 이 아닌 string으로 인식하는 경우 변환
콤마를 제거 (치환) -> string을 float으로 변환
# 첫번째 행의 매메 기준율 값
val = '1,326.54'
print(val)
# ',' 제거 : ','를 ''로 치환
print(val.replace(',', ''))
# 형식 확인
print(type(val.replace(',', '')))
# float으로 변환 : float(txt)
val2 = float(val.replace(',', ''))
# 형식 확인
type(val2)
1,326.54
1326.54
<class 'str'>
float
Tip 3#
특정 index 값을 추출하려고 할 때
2개의 dataframe
df1
,df2
가 있음df2
의 index로df1
값 출력하기df1.loc[df2.index]